<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<html>
<head>
<title><bean:message key="welcome.title"/></title>
<html:base/>
<link type="text/css" rel="stylesheet" href="../stylesheets/main.css"/>
</head>
<body>

<div id="top">
<p>
<bean:message key="application.title"/>
</p>
<table>
<tr>
<td><html:link action="/Welcome">home</html:link></td>
<td><html:link action="/userRegistration">registrazione</html:link></td>
<td><html:link action="/administration">amministrazione</html:link></td>
<td><html:link action="/Logoff">logoff</html:link></td>
</tr>
</table>
</div>

<div id="left">

<table>
<tr><td><html:link action="/Welcome"><bean:message key="application.mainmenu.home"/></html:link></td></tr>
<tr><td><html:link action="/contentSelection"><bean:message key="multimedia.selection.course"/></html:link></td></tr>
</table>

</div>

<div id="middle">

<p><strong>Streaming</strong></p>

<p>In generale l'accesso ad una risorsa multimediale su Internet pu&ograve; avvenire tramite il download o lo streaming. Nel primo caso, per poter utilizzare la risorsa,
occorre attendere la fine del trasferimento del file corrispondente mentre nel secondo caso il produttore e il consumatore della risorsa stabiliscono la quantit&agrave;
 di dati da trasferire nell'unit&agrave; di tempo per permettere al secondo l'uso della stessa senza dover attendere il trasferimento completo dei dati.</p>
<p>La sorgente dei
  dati pu&ograve; essere di diverso tipo: file multimediali, periferiche di acquisizione audio-video, generatori di immagini interattivi. Il caso pi&ugrave; semplice, dal punto
   di vista dell'architettura, &egrave; il primo in quanto per la sua realizzazione occorrono un server di streaming e un client collegati attraverso una rete Internet
    o intranet. Il secondo caso, che possiamo definire live-streaming, prevede l'aggiunta nell'architettura della periferica di acquisizione, ad esempio una webcam,
	 e di un codificatore per l'invio dei dati al server di streaming e da questo al client. Il terzo caso prevede un software che fornisca dati in modo interattivo
	 (ad esempio GoogleEarth).</p>
<p>I file multimediali possono contenere dati audio e video in stream separati. Al tipo di contenitore dei dati audio e video  corrisponde
	  un formato del file che dipende dal software o dal dispositivo con cui &egrave; stato realizzato. I dati audio e video sono compressi secondo diversi algoritmi al fine
	   di rendere efficiente la loro trasmissione in rete. I dati video sono formati da frame cio&egrave; da singole immagini compresse. La compressione dei dati video
	    &egrave; di due tipi: spaziale o intra-frame e temporale o inter-frame. Il secondo tipo di compressione sfrutta la ridondanza delle immagini con componenti statiche
		 tra un frame e l'altro. La conoscenza del tipo di compressione utilizzata permette la selezione delle tecniche di ripresa pi&ugrave; idonee per la successiva
		 codifica e trasmissione in streaming. Ogni file multimediale deve essere ottimizzato per la trasmissione in rete tenendo conto della dispnibilit&agrave; di banda
		 del client e in generale della qualit&agrave; del servizio che si intende offrire all'utente.</p>
<p>I fattori che determinano la banda necessaria alla trasmissione
		 dei pacchetti cio&egrave; il bit rate espresso in bit per secondo sono: la dimensione delle immagini, il numero di frame per secondo, il numero di canali audio
		  e naturalmente la codifica utilizzata per la compressione.  Quando un client richiede l'accesso a una risorsa multimediale il server di streaming accede
		   allo stream e inizia la trasmissione dei pacchetti contenenti i dati.</p>
<p> I protocolli utilizzati per la trasmissione dei pacchetti sono di due tipi: un
		   protocollo di sessione e diversi protocolli di trasporto. Il protocollo di sessione RTSP o Real Time Session Protocol, permette l'uso delle funzioni
		    VCR cio&egrave; stop, pause, play, fast forward e fast backward al client. Per la semplice trasmissione sono sufficienti i protocolli di trasporto: TCP o
			UDP. Il protocollo di sessione pu&ograve; essere utilizzato solo quando la trasmissione dei pacchetti avviene in modalit&agrave; unicast in cui per ogni client
			il server mette a disposizione uno stream con la relativa banda necessaria.</p>
<p> La modalit&agrave; unicast &egrave; l'unica attualmente realizzabile su Internet.
			Per le trasmissioni all'interno di una LAN &egrave; possibile utilizzare la modalit&agrave; multicast in cui un solo stream &egrave; accessibile a pi&ugrave; client.
			Questa modalit&agrave; consente un notevole risparmio di risorse di banda e di elaborazione da parte del server nel caso in cui pi&ugrave; client accedono
			 contemporaneamente alla stessa risorsa. </p>


<p><strong>Il server Helix</strong></p>
<p>
In generale i produttori dei player per la fruizione dei contenuti multimediali, anche open-source,
 producono anche i server di streaming. La RealNetwork ha sviluppato il server Helix con il quale
 si possono trasmettere in streaming file multimediali di diversi formati sia proprietari che
  standard. Nella tabella seguente sono riportati alcuni formati proprietari riconosciuti dal server
   Helix:
</p>

<table>
<th>Produttore</th><th>Formato</th><th>Estensione</th>
<tr><td>RealNetworks</td><td>RealAudio, RealVideo</td><td>.ra, .rv, .rm</td></tr>
<tr><td>Microsoft</td><td>WindowsMedia</td><td>.wma, .wmv</td></tr>
<tr><td>Apple</td><td>QuickTime</td><td>.mov</td></tr>
</table>

<p>
I formati standard utilizzabili sono mpeg-4 e mp3. I formati RealAudio e RealVideo risultano
 molto compatti ed efficienti sebbene possano essere utilizzati solo con il player Real.
  Il server Helix fornisce un'interfaccia di amministrazione per effettuare diverse operazioni
  tra le quali:
 </p>
<ul>
<li>configurazione di vari parametri tra i quali l'indirizzo IP del server e le porte per i protocolli di sessione e di trasporto</li>
<li>gestione dei contenuti su file system e controllo di accesso alle risorse</li>
<li>monitoraggio e registrazione degli accessi e della banda di rete utilizzata</li>
</ul>
<p>

Il server Helix pu&ograve; essere configurato per distribuire il carico su una rete tra pi&ugrave; server di streaming.
Per lo streaming di eventi live &egrave; possibile utilizzare RealProducer  insieme al server Helix
per effettuare la codifica degli stream e la successiva trasmissione in rete.

</p>

<p><strong>Riferimenti:</strong></p>
<table>
<tr><td><html:link href="http://www.realnetworks.com/products/media_delivery.html">RealNetworks Media Delivery: Helix Server</html:link></td></tr>
<tr><td><html:link href="http://www.realnetworks.com/products/producer/index.html">RealNetworks Digital Encoding: Real Producer</html:link></td></tr>
<tr><td><html:link href="http://ntu.csie.org/~piaip/docs/Streaming.pdf">D. Wu: Streaming Video over the Internet: Approaches and Directions</html:link></td></tr>
<tr><td><html:link href="http://www.amazon.com/gp/product/0764536508/sr=8-1/qid=1143799655/ref=sr_1_1/102-6304091-4713767?%5Fencoding=UTF8">S. Mack: Streaming Media Bible</html:link></td></tr>
<tr><td><html:link href="http://all-streaming-media.com/">All Streaming Media.Com</html:link></td></tr>
</table>
</div>

<div id="right">
<p>

</p>
</div>

<div id="bottom">

<table align="center">
<tr><td align="center">Mar. 2006</td></tr>
<tr><td>powered by S.I.A srl Roma</td></tr>
</table>

</div>


</body>
</html>